package com.shaw.study.springx.context.support;

import com.shaw.study.springx.beans.AopConfigDefinition;
import com.shaw.study.springx.beans.BeanDefinition;
import com.shaw.study.springx.beans.BeanWapper;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * Created by asus on 2018/5/6.
 */
public class DefaultListableBeanFactory
{
    //bean信息map
    protected final Map<String,BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<>();
    //aop信息
    protected List<AopConfigDefinition> aopConfigDefinitionList = new ArrayList<>();

    protected BeanDefinitionReader beanDefinitionReader;

    //bean实例缓存map
    protected final Map<String,Object> beanCacheMap = new ConcurrentHashMap<>();
    //bean包装实例的缓存map
    protected final Map<String,BeanWapper> beanWapperMap = new ConcurrentHashMap<>();
    //类全名集合
    protected List<String> classList = new ArrayList<>();

    public DefaultListableBeanFactory() {
    }


    protected void onRefresh(){

    }

    protected  void refreshBeanFactory(){

    }

    protected void initAopBeanDefinition() throws ClassNotFoundException {

    }
}
